; ==================================================
; DIRECT PAGE REGISTERS (VARIABLES) $0000-$00FF:
; ==================================================
; $37 - Buttons_Hold_L
; $38 - Buttons_Hold_H
;
; $3B - Buttons_Pressed_L
; $3C - Buttons_Pressed_H
:
; $47 - DMA Enable		; goes to $420B in Subroutine SetScreenOptions at $0000:0C46
; $48 - HDMA Enable		; goes to $420C in Subroutine SetScreenOptions at $0000:0C46
; $49 - BG1-H-Scroll Low
; $4A - BG1-H-Scroll High
; $4B - BG1-V-Scroll Low
; $4C - BG1-V-Scroll High
; $4D - BG2-H-Scroll Low
; $4E - BG2-H-Scroll High
; $4F - BG2-V-Scroll Low
; $50 - BG2-V-Scroll High
; $51 - BG3-H-Scroll Low
; $52 - BG3-H-Scroll High
; $53 - BG3-V-Scroll Low
; $54 - BG3-V-Scroll High
; $55 - INIDISP			; goes to $2100 in Subroutine SetScreenOptions at $0000:0C46
; $56 - BGMODE			; goes to $2105 in Subroutine SetScreenOptions at $0000:0C46
; $57 - BG1SC			; goes to $2107 in Subroutine SetScreenOptions at $0000:0C46
; $58 - BG2SC			; goes to $2108 in Subroutine SetScreenOptions at $0000:0C46
; $59 - BG12NBA			; goes to $2109 in Subroutine SetScreenOptions at $0000:0C46
; $5A - M7SEL			; goes to $211A in Subroutine SetScreenOptions at $0000:0C46
; $5B - M7AL			; goes to $211B in Subroutine SetScreenOptions at $0000:0C46
; $5C - M7AH			; goes to $211B in Subroutine SetScreenOptions at $0000:0C46
; $5D - M7BL			; goes to $211C in Subroutine SetScreenOptions at $0000:0C46
; $5E - M7BH			; goes to $211C in Subroutine SetScreenOptions at $0000:0C46
; $5F - M7CL			; goes to $211D in Subroutine SetScreenOptions at $0000:0C46
; $60 - M7CH			; goes to $211D in Subroutine SetScreenOptions at $0000:0C46
; $61 - M7DL			; goes to $211E in Subroutine SetScreenOptions at $0000:0C46
; $62 - M7DH			; goes to $211E in Subroutine SetScreenOptions at $0000:0C46
; $63 - M7XL			; goes to $211F in Subroutine SetScreenOptions at $0000:0C46
; $64 - M7XH			; goes to $211F in Subroutine SetScreenOptions at $0000:0C46
; $65 - M7YL			; goes to $2120 in Subroutine SetScreenOptions at $0000:0C46
; $66 - M7YH			; goes to $2120 in Subroutine SetScreenOptions at $0000:0C46
; $67 - TMAIN			; goes to $212C in Subroutine SetScreenOptions at $0000:0C46
; $68 - TSUB			; goes to $212D in Subroutine SetScreenOptions at $0000:0C46
; $69 - TMAIN_WINDOW		; goes to $212E in Subroutine SetScreenOptions at $0000:0C46
; $6A - TSUB_WINDOW		; goes to $212F in Subroutine SetScreenOptions at $0000:0C46
; $6B - CGWSEL			; goes to $2130 in Subroutine SetScreenOptions at $0000:0C46
; $6C - CGADSUB			; goes to $2131 in Subroutine SetScreenOptions at $0000:0C46
; $6D - COLDATA			; goes to $2132 in Subroutine SetScreenOptions at $0000:0C46

; ==================================================
; RAM USAGE
; ==================================================
;[$0000 - $00FF - DP-Registers, see above]
; $0100 - $01FF - Stack(?)
; $0200 - $03FF - OAM TEMP - Low Table
; $0400 - $041F - OAM TEMP - High Table
;
; $0440 - $04?? - VRAM DMA Pipeline (Data for the DMA Registers, transfer in Subroutine VRAM_DMA at $0000:0AA2)
;
; $06FE - $06FF - Pointer for the next free slot in the VRAM DMA Pipeline ($0440 onwards).
; $0700 - $077F - DMA Pipeline (transfer in Subroutine Flexi_VRAM_DMA at $0000:1570).
; $0800 - $09FF?- Sort of "Pre-Temp"; Palette-Data are loaded here and are later transfered to $0A00
; $0A00 - $0BFF - CGRAM TEMP
;
; $0E00 - $0E07 - VRAM DMA Pipeline (Data for the DMA Registers, transfere in Subroutine Single_VRAM_DMA at $0000:1690)
; $13FE - $13FF - Another DMA Pointer?

; BANK 7F seems to be (from $0002 on) a mirror for VRAM

; ==========
; IN DETAIL
; ==========
; $0440 - DMA On/Off-Switch in Subroutine VRAM_DMA at $0000:0AA2
; $0441 - $2116 Low Byte in Subroutine VRAM_DMA at $0000:0AA2
; $0442 - $2116 High Byte in Subroutine VRAM_DMA at $0000:0AA2
; $0443 - Source Address Low Byte in Subroutine VRAM_DMA at $0000:0AA2
; $0444 - Source Address High Byte in Subroutine VRAM_DMA at $0000:0AA2
; $0445 - Source Bank in Subroutine VRAM_DMA at $0000:0AA2
; $0446 - Data Size Low Byte in Subroutine VRAM_DMA at $0000:0AA2
; $0447 - Data Size Low Byte in Subroutine VRAM_DMA at $0000:0AA2

; ==================================================
; SRAM USAGE
; ==================================================
; $0000 - $01FF - Game Slot (temporary one?)
; $0200 - $03FF - Game Slot
; $0400 - $05FF - Game Slot
; $0600 - $07FF - Game Slot

; ==========
; GAME SLOTS
; ==========
; $000 - $007 - "IHA_Ram." - ($49, $48, $41, $5F, $52, $61, $6D, $2E)
;
; $1FE - $1FF - 16 Bit Checksum

; ==================================================
; ROM
; ==================================================
; ==========
; BANK $00
; ==========
; $0000 - $0031 - ROM STARTS HERE. FBlank, STZ DMA/HDMA, STZ APU-Register; JML to Bank $0A
; $0032 - $022A - INITIALIZATION
; $022B - $0276 - Intro(?): First Loop
;
; $027D - $02A5 - SUBROUTINE: (?)
;
; $0301 - $0360 - SUBROUTINE: Jump Table Entry #$10
; $0361 - $0370 - SUBROUTINE: Jump Table Entry #$11
; $0371 - $038D - SUBROUTINE: Jump Table Entry #$12
; $038E - $04?? - JUMP TABLE
;
; $04E4 - $04FA - SUBROUTINE: SRAM: If combination of buttons is pressed, SRAM gets cleared completely
;
; $0671 - $0695 - SUBROUTINE: Graphics: Turning some Sprites of, in dependence of some register values
;
; $0739 - $0778 - Graphic Data(?)
; $0779 - $0783 - SUBROUTINE: (?)
;
; $078D - $07AA - SUBROUTINE: (?)
;
; $07AB - $07AC - Possible Ending of the VBLANK that comes next
; $07AD - $080C - VBLANK
; $080D - $0825 - SUBROUTINE: (?)
; $0826 - $0925 - TABLE: (?)
;
; $0952 - $0955 - SUBROUTINE: Possible additional Beginning of the subroutine that comes next
; $0956 - $0989 - SUBROUTINE: Preparation for DMA
; $098A - $09DA - SUBROUTINE: Preparation for DMA
;
; $0A11 - $0A35 - SUBROUTINE: Graphics: Decompressor of a Tilemap
;
; $0AA2 - $0AEC - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0400 (sent to VRAM)
; $0AED - $0B3B - SUBROUTINE: DMA: Super Flexible DMA Subroutine
; $0B3C - $0B7C - SUBROUTINE: DMA: WRAM-Temp-Registers to OAM & CGRAM
;
; $0BFD - $0C45 - SUBROUTINE: Screen: BG1/2/3-Scroll set according to DP-Registers $49 to $54
; $0C46 - $0CBB - SUBROUTINE: Screen: Transfering some DP-Registers to Screen-Setting-Registers (like Mode 7-regs)
; $0CBC - $0D05 - SUBROUTINE: OAMTemp in $0200 - $0420 gets cleared; All Sprite-X-Coordinates are set offscreen
;
; $0DCC - $0DE9 - SUBROUTINE: Graphics: Transfer of CG-Data from Bank $04 to $0800
;
; $0F0D - $0F1E - SUBROUTINE: Graphics: Transfer of $0800 (CG-Data-Pre-TEMP) to $0A00 (CG-Temp)
;
; $1042 - $106D - SUBROUTINE: (?)
; $106E - $107E - SUBROUTINE: Screen: Turns the brightness up to $F
; $107F - $1081 - SUBROUTINE: Possible Ending of the subroutine that comes next
; $1082 - $1092 - SUBROUTINE: Screen: Turns the brightness down to 0 (Intro Hector Logo)
;
; $10B3 - $10E5 - SUBROUTINE: Graphics: Clears Tilemap area in VRAM
;
; $123C - $12AB - SUBROUTINE: (?)
;
; $1426 - $14CA - SUBROUTINE: (?)
;
; $1570 - $15B1 - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0700
;
; $1690 - $16C2 - SUBROUTINE: DMA: DMA-Registers filled with data in pipeline at $0E00 (sent to VRAM)
;
; $3578 - $35BE - SUBROUTINE: (?)
;
; $3620 - $36B2 - SUBROUTINE: (?)
;
; $3D3E - $3D57 - SUBROUTINE: JoyPad: Update Hold/Pressed-Registers
; $3D58 - $3D5A - JUMP
; $3D5B - $3E1C - SUBROUTINE: JoyPad: (?)
; $3E1D - $3E90 - SUBROUTINE: JoyPad: (?)
; $3E91 - $3EA7 - SUBROUTINE: JoyPad: Main-SR that calls different other JoyPad-SRs
;
; $43E9 - $440D - SUBROUTINE: SRAM: Check (and probably clear) all save states
; $440E - $4473 - SUBROUTINE: SRAM: Check a save state if it contains valid data; else clear it
; $4474 - $448A - SUBROUTINE: SRAM: Check Sum calculation
;
; $4502 - $45AA - SUBROUTINE: Jump Table Entry #$19
;
; $4713 - $478D - SUBROUTINE: Jump Table Entry #$16
; $478E - $47B8 - SUBROUTINE: Jump Table Entry #$17
; $47B9 - $47C5 - SUBROUTINE: Jump Table Entry #$18
;
; $4F75 - $4FA0 - SUBROUTINE: Jump Table Entry #$08
;
; $6F5F - $6FEC - SUBROUTINE: Jump Table Entry #$54
;
; $7673 - $767E - SUBROUTINE: SPC: (?)
;
; ==========
; BANK $02
; ==========
; $0000 - $03FF - DATA: Graphics: Hector-Logo
; $0340 - $035F - DATA: Palette:  Hector-Logo
; $0360 - $03FF - DATA: Tilemap:  Hector-Logo (compressed)

; ==========
; BANK $04
; ==========
; $0000 - $003F - DATA: Palette: Intro(?)

; ==========
; BANK $0A
; ==========
; $0000 - $0008?- JUMP TABLE: To SPC-Subroutines
;
; $1E6F - $1E7A - SUBROUTINE: Additional Intro to the following Subroutine
; $1E7B - $1E88 - SUBROUTINE: SPC: Some Init (?)
; $1E89 - $1EB6 - SUBROUTINE: SPC: Storing four DP-regs into the APU-regs and waiting for them
; $1EB7 - $1EF1 - SUBROUTINE: SPC: A Main SR, calling the following SRs
; $1EF2 - $1EFD - SUBROUTINE: SPC: Value deformation/preparation
; $1EFE - $1F10 - SUBROUTINE: SPC: Value deformation/preparation
; $1F11 - $1F1C - SUBROUTINE: SPC: Value deformation/preparation
; $1F1D - $1F26 - SUBROUTINE: SPC: Value deformation/preparation
; $1F27 - $1F3A - SUBROUTINE: SPC: Value deformation/preparation
; $1F3B - $1F5C - SUBROUTINE: SPC: Value deformation/preparation
; $1F5D - $1F63 - SUBROUTINE: SPC: Jumping to two different SPC-SRs
; $1F64 - $1FDC - SUBROUTINE: SPC: Some Init for the SPC (?)
; $1FDD - $2003 - SUBROUTINE: SPC: A Main SR, calling the following SRs (and a few preceding)
; $2004 - $2030 - SUBROUTINE: SPC: Value deformation/preparation
; $2031 - $20EB - SUBROUTINE: SPC: Value deformation/preparation
; $20EC - $215E - SUBROUTINE: SPC: Value deformation/preparation

; ==========
; BANK $0F
; ==========
;
; $5DF7 - $E5F6 - DATA: Tilemap:  Intro Poem

; ==========
; BANK $10
; ==========
;
; $4000 - $5FFF - DATA: Graphics: Big Kanjis for the Menu
; $6000 - $62FF - DATA: Graphics: Latin alphabet for Title Screen Copyright

; ==========
; BANK $17
; ==========
; $0000 - $05CF - DATA: Graphics: Intro Steam
; $05D0 - $4FCF - DATA: Graphics: Intro Landscape & Scenery
; $4FD0 - $5ECF?- DATA: Graphics: Intro Mini Train
